//
//  PaymentManager.swift
//  SevenAISDK
//
//  Created by 七块 on 2025/7/3.
//

import Foundation

public typealias SDKPaymentCallBackListener = (SevenBlockSDKPaymentListener) -> Void

public class PaymentManager {
    
    var paymentListener:SDKPaymentCallBackListener!
    
    public func setPaymentListener(listener:@escaping SDKPaymentCallBackListener){
        paymentListener = listener
    }
    /// 当用户余额充足时，直接发起消费请求扣款。
    /// - Parameter data: 扣款数据
    public func requestConsume(data:ConsumeData){
        paymentListener(.requestConsume(data: data))
    }
    /// 当客户APP扣款完成后，调用该函数向H5 sdk发起执行更新余额和资产的操作。
    /// - Parameters:
    ///   - result: 支付结果
    ///   - code: 结果码
    ///   - message: 信息
    public func notifyConsumeResult(result:Bool,code:Int,message:String){
        HandleConsumeResult()
    }
    /// 调用客户APP中的充值功能，通过该函数向客户APP使用消费信息发起支付请求。
    /// - Parameter data: 支付数据
    public func useConstomerRecharge(data:ConsumeData) {
        paymentListener(.doRecharge(data: data))
    }
    /// 当客户APP执行完支付流程后，调用该函数通知SDK执行余额更新等相关操作
    /// - Parameters:
    ///   - result: 充值结果
    ///   - code: 结果码
    ///   - message: 信息
    public func notifyCustomerRechargeResult(result:Bool,code:Int,message:String) {
        HandleRechargeResult()
    }
}
extension PaymentManager{
    func HandleConsumeResult(){
        XMLog.logs("客户(消费了)扣款了，SDK要处理一下")
    }
    func HandleRechargeResult(){
        XMLog.logs("客户充值了，SDK要处理一下")
    }
}
